home *** CD-ROM | disk | FTP | other *** search
- (*************************************************************************
-
- :Program. WBReadArgsTest.mod
- :Contents. test for WBReadArgs
- :Author. Hartmut Goebel [hG]
- :Address. Aufseßplatz 5, D-8500 Nürnberg 40
- :Address. UseNet: hartmut@oberon.nbg.sub.org
- :Address. Z-Netz: hartmut@asn.zer Fido: 2:246/81.1
- :Copyright. Copyright © 1993 by Hartmut Goebel
- :Language. Oberon
- :Translator. Amiga Oberon V3.0
- :History. V1.0, 03 Jan 1993 [hG]
- :Date. 03 Jan 1993 15:46:19
-
- (* $StackChk- $NilChk- $RangeChk- $CaseChk- $OvflChk- $ReturnChk- $ClearVars- *)
-
- *************************************************************************)
-
- MODULE WBReadArgsTest;
-
- IMPORT
- io, NoGuru,
- WBReadArgs,
- ol := OberonLib,
- d := Dos,
- e := Exec,
- wb := Workbench;
-
- CONST
- Template = "Files/M,Switch/S,Toggle/T,Number/N/K,Keyword/K,Needed/A";
-
- TYPE
- ArgArray = STRUCT
- files: UNTRACED POINTER TO ARRAY d.maxMultiArgs OF e.STRPTR;
- switch, toggle: LONGINT;
- number: UNTRACED POINTER TO ARRAY 1 OF LONGINT;
- keyword: e.STRPTR;
- needed: e.STRPTR;
- END;
-
- CONST
- argArray = ArgArray(NIL,0,d.DOSTRUE,NIL,NIL,NIL);
-
- VAR
- argarray: ArgArray;
- args: d.RDArgsPtr;
- wbargs: WBReadArgs.Arguments;
- wbm: wb.WBStartupPtr;
-
- PROCEDURE ShowArgs();
- VAR
- i: INTEGER;
- BEGIN
- IF argarray.files # NIL THEN
- io.WriteString("Files: ");
- i := 0;
- WHILE argarray.files[i] # NIL DO
- io.WriteString(argarray.files[i]^);
- io.Write(" ");
- INC(i);
- END;
- io.WriteLn;
- END;
- IF argarray.switch # d.DOSFALSE THEN
- io.WriteString("Switch is SET\n");
- ELSE
- io.WriteString("Switch is NOT set\n");
- END;
- IF argarray.toggle # d.DOSFALSE THEN
- io.WriteString("Toggle is SET\n");
- ELSE
- io.WriteString("Toggle is NOT set\n");
- END;
- IF argarray.number # NIL THEN
- io.WriteString("Number is ");
- io.WriteInt(argarray.number[0],0);
- io.WriteLn;
- END;
- IF argarray.keyword # NIL THEN
- io.WriteString("Keyword is ");
- io.WriteString(argarray.keyword^);
- io.WriteLn;
- END;
- IF argarray.needed # NIL THEN
- io.WriteString("Needed is ");
- io.WriteString(argarray.needed^);
- io.WriteLn;
- END;
- END ShowArgs;
-
-
- BEGIN
- argarray := argArray;
- IF ol.wbStarted THEN
- wbm := ol.wbenchMsg;
- IF ~ WBReadArgs.ReadArgs(wbm.argList[0],Template,argarray,wbargs) THEN
- io.WriteString("Error: "); io.WriteInt(WBReadArgs.error,0);
- ELSE
- io.WriteString("started from Workbench\n\n");
- ShowArgs();
- WBReadArgs.FreeArgs(wbargs);
- END;
- d.Delay(500);
- ELSE
- args := d.ReadArgs(Template,argarray,NIL);
- IF args = NIL THEN
- IF d.PrintFault(d.IoErr(),"WBReadArgsTest") THEN END;
- HALT(20);
- ELSE
- io.WriteString("started from Shell\n\n");
- ShowArgs();
- d.FreeArgs(args);
- END;
- END;
-
- END WBReadArgsTest.
-